#define DECLARE_SINGLETON(name)            \
  private:                                 \
    name() {}                              \
    ~name() {}                             \
    name(const name&) {}                   \
    /*  name& operator=(const name&) {} */ \
                                           \
  public:                                  \
    static auto GetInstance() -> name& {   \
        static name self;                  \
        return self;                       \
    }